<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>IRremoteESP8266: src/ir_Kelvinator.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">IRremoteESP8266
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">ir_Kelvinator.h</div>  </div>
</div><!--header-->
<div class="contents">
<a href="ir__Kelvinator_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">// Copyright 2016 David Conran</span></div>
<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"></span> </div>
<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment">// Supports:</span></div>
<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment">//   Brand: Kelvinator,  Model: YALIF Remote</span></div>
<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment">//   Brand: Kelvinator,  Model: KSV26CRC A/C</span></div>
<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment">//   Brand: Kelvinator,  Model: KSV26HRC A/C</span></div>
<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment">//   Brand: Kelvinator,  Model: KSV35CRC A/C</span></div>
<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment">//   Brand: Kelvinator,  Model: KSV35HRC A/C</span></div>
<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment">//   Brand: Kelvinator,  Model: KSV53HRC A/C</span></div>
<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment">//   Brand: Kelvinator,  Model: KSV62HRC A/C</span></div>
<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment">//   Brand: Kelvinator,  Model: KSV70CRC A/C</span></div>
<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment">//   Brand: Kelvinator,  Model: KSV70HRC A/C</span></div>
<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment">//   Brand: Kelvinator,  Model: KSV80HRC A/C</span></div>
<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment">//   Brand: Gree,  Model: YAPOF3 remote</span></div>
<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment">//   Brand: Gree,  Model: YAP0F8 remote</span></div>
<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment">//   Brand: Sharp,  Model: YB1FA remote</span></div>
<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment">//   Brand: Sharp,  Model: A5VEY A/C</span></div>
<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160; </div>
<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="preprocessor">#ifndef IR_KELVINATOR_H_</span></div>
<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#define IR_KELVINATOR_H_</span></div>
<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160; </div>
<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#define __STDC_LIMIT_MACROS</span></div>
<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="preprocessor">#ifndef UNIT_TEST</span></div>
<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="preprocessor">#include &lt;Arduino.h&gt;</span></div>
<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="IRremoteESP8266_8h.html">IRremoteESP8266.h</a>&quot;</span></div>
<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="IRsend_8h.html">IRsend.h</a>&quot;</span></div>
<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160;<span class="preprocessor">#ifdef UNIT_TEST</span></div>
<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#include &quot;IRsend_test.h&quot;</span></div>
<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160; </div>
<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="unionKelvinatorProtocol.html">   36</a></span>&#160;<span class="keyword">union </span><a class="code" href="unionKelvinatorProtocol.html">KelvinatorProtocol</a>{</div>
<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="unionKelvinatorProtocol.html#a9d16ef4663c237f8217a081f71e96e44">   37</a></span>&#160;  uint8_t <a class="code" href="unionKelvinatorProtocol.html#a9d16ef4663c237f8217a081f71e96e44">raw</a>[<a class="code" href="IRremoteESP8266_8h.html#af68545e8c2fe9af3719fb74c5d21f0c9">kKelvinatorStateLength</a>];  </div>
<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;  <span class="keyword">struct </span>{</div>
<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;    <span class="comment">// Byte 0</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="unionKelvinatorProtocol.html#abd6a849c39d0e7e231a1cf42d32f52e7">   40</a></span>&#160;    uint8_t <a class="code" href="unionKelvinatorProtocol.html#abd6a849c39d0e7e231a1cf42d32f52e7">Mode</a>      :3;</div>
<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="unionKelvinatorProtocol.html#a4bc98c7ae62273e8d8d60d71fdb44750">   41</a></span>&#160;    uint8_t <a class="code" href="unionKelvinatorProtocol.html#a4bc98c7ae62273e8d8d60d71fdb44750">Power</a>     :1;</div>
<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="unionKelvinatorProtocol.html#a9237eb894fd7d6807169d18655bb3261">   42</a></span>&#160;    uint8_t <a class="code" href="unionKelvinatorProtocol.html#a9237eb894fd7d6807169d18655bb3261">BasicFan</a>  :2;</div>
<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="unionKelvinatorProtocol.html#a95464e4fa3759ef5a8f88abce5617ebb">   43</a></span>&#160;    uint8_t <a class="code" href="unionKelvinatorProtocol.html#a95464e4fa3759ef5a8f88abce5617ebb">SwingAuto</a> :1;</div>
<div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="unionKelvinatorProtocol.html#a1c5a62ea69b305fe7c842ed06201544e">   44</a></span>&#160;    uint8_t           :1;  <span class="comment">// Sleep Modes 1 &amp; 3 (1 = On, 0 = Off)</span></div>
<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;    <span class="comment">// Byte 1</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="unionKelvinatorProtocol.html#a2ad164ea50b7501e9b04352aa283ddce">   46</a></span>&#160;    uint8_t <a class="code" href="unionKelvinatorProtocol.html#a2ad164ea50b7501e9b04352aa283ddce">Temp</a>  :4;  <span class="comment">// Degrees C.</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="unionKelvinatorProtocol.html#a3e434ffef93cd99fe33800f87f5f4c02">   47</a></span>&#160;    uint8_t       :4;</div>
<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160;    <span class="comment">// Byte 2</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="unionKelvinatorProtocol.html#a612fd8e28cb1ca0b675f6397465422fb">   49</a></span>&#160;    uint8_t           :4;</div>
<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="unionKelvinatorProtocol.html#a53c157f2b60f079f5ce77798084888a5">   50</a></span>&#160;    uint8_t <a class="code" href="unionKelvinatorProtocol.html#a53c157f2b60f079f5ce77798084888a5">Turbo</a>     :1;</div>
<div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="unionKelvinatorProtocol.html#a38f5b978fd63fda659f0e0b5f682440e">   51</a></span>&#160;    uint8_t <a class="code" href="unionKelvinatorProtocol.html#a38f5b978fd63fda659f0e0b5f682440e">Light</a>     :1;</div>
<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="unionKelvinatorProtocol.html#ad7c762e410c8cba234614563cdc9d384">   52</a></span>&#160;    uint8_t <a class="code" href="unionKelvinatorProtocol.html#ad7c762e410c8cba234614563cdc9d384">IonFilter</a> :1;</div>
<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="unionKelvinatorProtocol.html#a44a0ba82ee5dc39f64215d26edb9636c">   53</a></span>&#160;    uint8_t <a class="code" href="unionKelvinatorProtocol.html#a44a0ba82ee5dc39f64215d26edb9636c">XFan</a>      :1;</div>
<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    <span class="comment">// Byte 3</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="unionKelvinatorProtocol.html#a35b5c9cd85f4b8c9eeec9231321acb5e">   55</a></span>&#160;    uint8_t :4;</div>
<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="unionKelvinatorProtocol.html#ac5dfd253e66fe1ec3e81861ff9831152">   56</a></span>&#160;    uint8_t :2;  <span class="comment">// (possibly timer related) (Typically 0b01)</span></div>
<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="unionKelvinatorProtocol.html#a57849bb224e56d4cee776299d1ca04b4">   57</a></span>&#160;    uint8_t :2;  <span class="comment">// End of command block (B01)</span></div>
<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    <span class="comment">// (B010 marker and a gap of 20ms)</span></div>
<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    <span class="comment">// Byte 4</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="unionKelvinatorProtocol.html#abd01a8f9d88b44f59484955107d9b7bb">   60</a></span>&#160;    uint8_t <a class="code" href="unionKelvinatorProtocol.html#abd01a8f9d88b44f59484955107d9b7bb">SwingV</a>  :4;</div>
<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="unionKelvinatorProtocol.html#aa00bcaec92896c766d0c59edfd19fa0c">   61</a></span>&#160;    uint8_t <a class="code" href="unionKelvinatorProtocol.html#aa00bcaec92896c766d0c59edfd19fa0c">SwingH</a>  :1;</div>
<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="unionKelvinatorProtocol.html#aa66ce8c926b143fa20f625272327f562">   62</a></span>&#160;    uint8_t         :3;</div>
<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;    <span class="comment">// Byte 5~6</span></div>
<div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="unionKelvinatorProtocol.html#aa67bf941395c4a614f8cc70ce29bffcf">   64</a></span>&#160;    uint8_t <a class="code" href="unionKelvinatorProtocol.html#aa67bf941395c4a614f8cc70ce29bffcf">pad0</a>[2];  <span class="comment">// Timer related. Typically 0 except when timer in use.</span></div>
<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    <span class="comment">// Byte 7</span></div>
<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="unionKelvinatorProtocol.html#a02e3f067fc93fae6f5656abe574bb440">   66</a></span>&#160;    uint8_t       :4;  <span class="comment">// (Used in Timer mode)</span></div>
<div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="unionKelvinatorProtocol.html#a11960442c40eb23519d44c3daa354d4f">   67</a></span>&#160;    uint8_t <a class="code" href="unionKelvinatorProtocol.html#a11960442c40eb23519d44c3daa354d4f">Sum1</a>  :4;  <span class="comment">// checksum of the previous bytes (0-6)</span></div>
<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;    <span class="comment">// (gap of 40ms)</span></div>
<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;    <span class="comment">// (header mark and space)</span></div>
<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    <span class="comment">// Byte 8~10</span></div>
<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="unionKelvinatorProtocol.html#a9feee780a54bfb86968f137080d3d68e">   71</a></span>&#160;    uint8_t <a class="code" href="unionKelvinatorProtocol.html#a9feee780a54bfb86968f137080d3d68e">pad1</a>[3];  <span class="comment">// Repeat of byte 0~2</span></div>
<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    <span class="comment">// Byte 11</span></div>
<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="unionKelvinatorProtocol.html#ab2101275d6280bc95665d64ca936d4d2">   73</a></span>&#160;    uint8_t :4;</div>
<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="unionKelvinatorProtocol.html#aec71a5df4da5fd9a10e199d2112a88ce">   74</a></span>&#160;    uint8_t :2;  <span class="comment">// (possibly timer related) (Typically 0b11)</span></div>
<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="unionKelvinatorProtocol.html#aa2ce27bd061f2e9a44fd01b3c5abcd0a">   75</a></span>&#160;    uint8_t :2;  <span class="comment">// End of command block (B01)</span></div>
<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    <span class="comment">// (B010 marker and a gap of 20ms)</span></div>
<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    <span class="comment">// Byte 12</span></div>
<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="unionKelvinatorProtocol.html#a154ce4b17b1920eeeed576a84c42078c">   78</a></span>&#160;    uint8_t       :1;  <span class="comment">// Sleep mode 2 (1 = On, 0=Off)</span></div>
<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="unionKelvinatorProtocol.html#aca9a8e9d3bfae177addbbf5cf59be5b9">   79</a></span>&#160;    uint8_t       :6;  <span class="comment">// (Used in Sleep Mode 3, Typically 0b000000)</span></div>
<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="unionKelvinatorProtocol.html#ac803fe14d6d21155418d2fe0543c9d9f">   80</a></span>&#160;    uint8_t <a class="code" href="unionKelvinatorProtocol.html#ac803fe14d6d21155418d2fe0543c9d9f">Quiet</a> :1;</div>
<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;    <span class="comment">// Byte 13</span></div>
<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="unionKelvinatorProtocol.html#a7791a8425a444901bba50c314ea72f07">   82</a></span>&#160;    uint8_t     :8;  <span class="comment">// (Sleep Mode 3 related, Typically 0x00)</span></div>
<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    <span class="comment">// Byte 14</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="unionKelvinatorProtocol.html#aae165412d5c955b14dce78a4793c1196">   84</a></span>&#160;    uint8_t     :4;  <span class="comment">// (Sleep Mode 3 related, Typically 0b0000)</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="unionKelvinatorProtocol.html#a720843565363129441f5db98a166f439">   85</a></span>&#160;    uint8_t <a class="code" href="unionKelvinatorProtocol.html#a720843565363129441f5db98a166f439">Fan</a> :3;</div>
<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    <span class="comment">// Byte 15</span></div>
<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="unionKelvinatorProtocol.html#ab92ccd2d83d1f6a8ac071a6bf964192f">   87</a></span>&#160;    uint8_t       :4;</div>
<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="unionKelvinatorProtocol.html#aade6e576f735c6ef84c11062175f0013">   88</a></span>&#160;    uint8_t <a class="code" href="unionKelvinatorProtocol.html#aade6e576f735c6ef84c11062175f0013">Sum2</a>  :4;  <span class="comment">// checksum of the previous bytes (8-14)</span></div>
<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;  };</div>
<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;};</div>
<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160; </div>
<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;<span class="comment">// Constants</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="ir__Kelvinator_8h.html#a879b005fc5493a693b05e3bb7cbc8fbf">   93</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Kelvinator_8h.html#a879b005fc5493a693b05e3bb7cbc8fbf">kKelvinatorAuto</a> = 0;  <span class="comment">// (temp = 25C)</span></div>
<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="ir__Kelvinator_8h.html#ad49a2e457470d6e16d001cdae3215606">   94</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Kelvinator_8h.html#ad49a2e457470d6e16d001cdae3215606">kKelvinatorCool</a> = 1;</div>
<div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="ir__Kelvinator_8h.html#a181b3d10b522f9afb29706da42afea55">   95</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Kelvinator_8h.html#a181b3d10b522f9afb29706da42afea55">kKelvinatorDry</a> = 2;  <span class="comment">// (temp = 25C, but not shown)</span></div>
<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="ir__Kelvinator_8h.html#a8d6d97be2fd8a5aefa1319d3f662a50c">   96</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Kelvinator_8h.html#a8d6d97be2fd8a5aefa1319d3f662a50c">kKelvinatorFan</a> = 3;</div>
<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="ir__Kelvinator_8h.html#a080eade5648791e37c76af7a52e85731">   97</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Kelvinator_8h.html#a080eade5648791e37c76af7a52e85731">kKelvinatorHeat</a> = 4;</div>
<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="ir__Kelvinator_8h.html#a10624389f033451cf9a6f4530c2dfb98">   98</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Kelvinator_8h.html#a10624389f033451cf9a6f4530c2dfb98">kKelvinatorBasicFanMax</a> = 3;</div>
<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="ir__Kelvinator_8h.html#ac4994c36634ca0ad8791807c9a992976">   99</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Kelvinator_8h.html#ac4994c36634ca0ad8791807c9a992976">kKelvinatorFanAuto</a> = 0;</div>
<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="ir__Kelvinator_8h.html#a36a9422e2e6c6b7a87e8b2deffd1b189">  100</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Kelvinator_8h.html#a36a9422e2e6c6b7a87e8b2deffd1b189">kKelvinatorFanMin</a> = 1;</div>
<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="ir__Kelvinator_8h.html#a889ce17d112d1a61420e1064d72c583a">  101</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Kelvinator_8h.html#a889ce17d112d1a61420e1064d72c583a">kKelvinatorFanMax</a> = 5;</div>
<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="ir__Kelvinator_8h.html#a98871ce825dbbe80d072f25253142879">  102</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Kelvinator_8h.html#a98871ce825dbbe80d072f25253142879">kKelvinatorMinTemp</a> = 16;   <span class="comment">// 16C</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="ir__Kelvinator_8h.html#a14933442e718db1a87bae5d076ad228d">  103</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Kelvinator_8h.html#a14933442e718db1a87bae5d076ad228d">kKelvinatorMaxTemp</a> = 30;   <span class="comment">// 30C</span></div>
<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="ir__Kelvinator_8h.html#afa9e7ea8c9fb86cb02358cc8221733b0">  104</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Kelvinator_8h.html#afa9e7ea8c9fb86cb02358cc8221733b0">kKelvinatorAutoTemp</a> = 25;  <span class="comment">// 25C</span></div>
<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160; </div>
<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="ir__Kelvinator_8h.html#a9d849a2e557b73a7d4fe6547e8af3b53">  106</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Kelvinator_8h.html#a9d849a2e557b73a7d4fe6547e8af3b53">kKelvinatorSwingVOff</a>         = 0b0000;  <span class="comment">// 0</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="ir__Kelvinator_8h.html#ad80c71879304772caa433945cc2d1525">  107</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Kelvinator_8h.html#ad80c71879304772caa433945cc2d1525">kKelvinatorSwingVAuto</a>        = 0b0001;  <span class="comment">// 1</span></div>
<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="ir__Kelvinator_8h.html#ad610b3c9f5fcc520903c766651845a60">  108</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Kelvinator_8h.html#ad610b3c9f5fcc520903c766651845a60">kKelvinatorSwingVHighest</a>     = 0b0010;  <span class="comment">// 2</span></div>
<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="ir__Kelvinator_8h.html#ada6950a414392ccd4900a0841ef1ea7e">  109</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Kelvinator_8h.html#ada6950a414392ccd4900a0841ef1ea7e">kKelvinatorSwingVUpperMiddle</a> = 0b0011;  <span class="comment">// 3</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="ir__Kelvinator_8h.html#a08c88d6a641b0f37b244b0fadd28a579">  110</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Kelvinator_8h.html#a08c88d6a641b0f37b244b0fadd28a579">kKelvinatorSwingVMiddle</a>      = 0b0100;  <span class="comment">// 4</span></div>
<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="ir__Kelvinator_8h.html#aa06bb62cd671c6e7784297dd0fafa98d">  111</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Kelvinator_8h.html#aa06bb62cd671c6e7784297dd0fafa98d">kKelvinatorSwingVLowerMiddle</a> = 0b0101;  <span class="comment">// 5</span></div>
<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="ir__Kelvinator_8h.html#af4e3949fdd86145a19db5f1c8333ed41">  112</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Kelvinator_8h.html#af4e3949fdd86145a19db5f1c8333ed41">kKelvinatorSwingVLowest</a>      = 0b0110;  <span class="comment">// 6</span></div>
<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="ir__Kelvinator_8h.html#ada8754b1c44e764630f1b6ba8f0e67f7">  113</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Kelvinator_8h.html#ada8754b1c44e764630f1b6ba8f0e67f7">kKelvinatorSwingVLowAuto</a>     = 0b0111;  <span class="comment">// 7</span></div>
<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="ir__Kelvinator_8h.html#a7a1f8481ce1a2d3606ae5f9dc98e9240">  114</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Kelvinator_8h.html#a7a1f8481ce1a2d3606ae5f9dc98e9240">kKelvinatorSwingVMiddleAuto</a>  = 0b1001;  <span class="comment">// 9</span></div>
<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="ir__Kelvinator_8h.html#ae6c7b4323c82b1b687fdc905d512f5eb">  115</a></span>&#160;<span class="keyword">const</span> uint8_t <a class="code" href="ir__Kelvinator_8h.html#ae6c7b4323c82b1b687fdc905d512f5eb">kKelvinatorSwingVHighAuto</a>    = 0b1011;  <span class="comment">// 11</span></div>
<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160; </div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;<span class="comment">// Legacy defines (Deprecated)</span></div>
<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;<span class="preprocessor">#define KELVINATOR_MIN_TEMP kKelvinatorMinTemp</span></div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;<span class="preprocessor">#define KELVINATOR_MAX_TEMP kKelvinatorMaxTemp</span></div>
<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;<span class="preprocessor">#define KELVINATOR_HEAT kKelvinatorHeat</span></div>
<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;<span class="preprocessor">#define KELVINATOR_FAN_MAX kKelvinatorFanMax</span></div>
<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;<span class="preprocessor">#define KELVINATOR_FAN_AUTO kKelvinatorFanAuto</span></div>
<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;<span class="preprocessor">#define KELVINATOR_FAN kKelvinatorFan</span></div>
<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;<span class="preprocessor">#define KELVINATOR_DRY kKelvinatorDry</span></div>
<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;<span class="preprocessor">#define KELVINATOR_COOL kKelvinatorCool</span></div>
<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;<span class="preprocessor">#define KELVINATOR_BASIC_FAN_MAX kKelvinatorBasicFanMax</span></div>
<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;<span class="preprocessor">#define KELVINATOR_AUTO_TEMP kKelvinatorAutoTemp</span></div>
<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;<span class="preprocessor">#define KELVINATOR_AUTO kKelvinatorAuto</span></div>
<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160; </div>
<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;<span class="comment">// Classes</span></div>
<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="classIRKelvinatorAC.html">  132</a></span>&#160;<span class="comment"></span><span class="keyword">class </span><a class="code" href="classIRKelvinatorAC.html">IRKelvinatorAC</a> {</div>
<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;  <span class="keyword">explicit</span> <a class="code" href="classIRKelvinatorAC.html#a111dd384b1898a4fb880a19b6d1b1635">IRKelvinatorAC</a>(<span class="keyword">const</span> uint16_t pin, <span class="keyword">const</span> <span class="keywordtype">bool</span> inverted = <span class="keyword">false</span>,</div>
<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;                          <span class="keyword">const</span> <span class="keywordtype">bool</span> use_modulation = <span class="keyword">true</span>);</div>
<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRKelvinatorAC.html#ad6fefe85023c3fc318b0e45924874f9f">stateReset</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;<span class="preprocessor">#if SEND_KELVINATOR</span></div>
<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRKelvinatorAC.html#aa55fbfefbaca1acf5bc9ba796bea8464">send</a>(<span class="keyword">const</span> uint16_t repeat = <a class="code" href="IRremoteESP8266_8h.html#a94c968c5cc929f189b8e578d2f55b132">kKelvinatorDefaultRepeat</a>);</div>
<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="classIRKelvinatorAC.html#aee8863c1678b09432618bb4ca734db95">  143</a></span>&#160;  int8_t <a class="code" href="classIRKelvinatorAC.html#aee8863c1678b09432618bb4ca734db95">calibrate</a>(<span class="keywordtype">void</span>) { <span class="keywordflow">return</span> <a class="code" href="classIRKelvinatorAC.html#ae3571bf6de20e47f81ad1da8f1d13118">_irsend</a>.<a class="code" href="classIRsend.html#ad1776aa6c699f9eeca1eef9bb4fe355b">calibrate</a>(); }</div>
<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;<span class="preprocessor">#endif  // SEND_KELVINATOR</span></div>
<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRKelvinatorAC.html#a4591bf4e8131aa2a228cbc611156e7f4">begin</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRKelvinatorAC.html#a714d0e70f2996694e2c46afdd9996341">on</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRKelvinatorAC.html#a4a759df902d1465c9520da7c7c595abc">off</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRKelvinatorAC.html#a517a0193a9236a28a20d1760d7401efd">setPower</a>(<span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code" href="classIRKelvinatorAC.html#a714d0e70f2996694e2c46afdd9996341">on</a>);</div>
<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classIRKelvinatorAC.html#adfbe7efd74ec16f339c21983967920f9">getPower</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRKelvinatorAC.html#ab098a376c7393d377abcc6c1f504d372">setTemp</a>(<span class="keyword">const</span> uint8_t degrees);</div>
<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;  uint8_t <a class="code" href="classIRKelvinatorAC.html#a6b7c66f0bc68f2d43fbbabce7933e0a5">getTemp</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRKelvinatorAC.html#af08e94be9699983c0087c9b059aad319">setFan</a>(<span class="keyword">const</span> uint8_t speed);</div>
<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;  uint8_t <a class="code" href="classIRKelvinatorAC.html#ae96f43f14a7df9f23be734d1f9b09b37">getFan</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRKelvinatorAC.html#af55cc77892bc960587037c337b90d1bc">setMode</a>(<span class="keyword">const</span> uint8_t mode);</div>
<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;  uint8_t <a class="code" href="classIRKelvinatorAC.html#af878b8867a65e62e1208e8358cfffa7c">getMode</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRKelvinatorAC.html#a94374a68910d9d252543d2d65e991aa1">setSwingVertical</a>(<span class="keyword">const</span> <span class="keywordtype">bool</span> automatic, <span class="keyword">const</span> uint8_t position);</div>
<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classIRKelvinatorAC.html#a5e3505b24cbd3d1d383c2b1bd8dd3226">getSwingVerticalAuto</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;  uint8_t <a class="code" href="classIRKelvinatorAC.html#a14c497383d4025edbd82f6257357e469">getSwingVerticalPosition</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;  <span class="keyword">static</span> uint8_t <a class="code" href="classIRKelvinatorAC.html#a40964ef9ac1319b5bb05cacdef014c8d">convertSwingV</a>(<span class="keyword">const</span> <a class="code" href="namespacestdAc.html#ac07f224c7bb47cac55dd01f24770ef43">stdAc::swingv_t</a> swingv);</div>
<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;  <span class="keyword">static</span> <a class="code" href="namespacestdAc.html#ac07f224c7bb47cac55dd01f24770ef43">stdAc::swingv_t</a> <a class="code" href="classIRKelvinatorAC.html#a5171c5678e6a2f71ce47420f0b38fff4">toCommonSwingV</a>(<span class="keyword">const</span> uint8_t pos);</div>
<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRKelvinatorAC.html#a2f1731f71bc74fb7ad6fec1210ecb1c7">setSwingHorizontal</a>(<span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code" href="classIRKelvinatorAC.html#a714d0e70f2996694e2c46afdd9996341">on</a>);</div>
<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classIRKelvinatorAC.html#ab24237062a73a8c236b6691a0277c1f3">getSwingHorizontal</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRKelvinatorAC.html#a2a3ca238649c55cd4f6f92f48eddf9ac">setQuiet</a>(<span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code" href="classIRKelvinatorAC.html#a714d0e70f2996694e2c46afdd9996341">on</a>);</div>
<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classIRKelvinatorAC.html#a3ecb10d41670852841c2543e6e97c781">getQuiet</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRKelvinatorAC.html#a6a219c481ddc21d93028f5c799c25883">setIonFilter</a>(<span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code" href="classIRKelvinatorAC.html#a714d0e70f2996694e2c46afdd9996341">on</a>);</div>
<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classIRKelvinatorAC.html#ae1cb7be762f306bd007976dc0feb788e">getIonFilter</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRKelvinatorAC.html#a870890c2bc8510f8f7351ca21db8d855">setLight</a>(<span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code" href="classIRKelvinatorAC.html#a714d0e70f2996694e2c46afdd9996341">on</a>);</div>
<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classIRKelvinatorAC.html#aafda5580f46145f2b1843d1d4b7dc055">getLight</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRKelvinatorAC.html#af02da81109109cf1cb44057fd1a40164">setXFan</a>(<span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code" href="classIRKelvinatorAC.html#a714d0e70f2996694e2c46afdd9996341">on</a>);</div>
<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classIRKelvinatorAC.html#a3ba6705529806f3ca083dd45f4b28377">getXFan</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRKelvinatorAC.html#a7d9c44970e85f23c83723f27e96260ee">setTurbo</a>(<span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code" href="classIRKelvinatorAC.html#a714d0e70f2996694e2c46afdd9996341">on</a>);</div>
<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classIRKelvinatorAC.html#aee37bb608940cb0214e1d0c0046c8eee">getTurbo</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;  uint8_t* <a class="code" href="classIRKelvinatorAC.html#a09149dd7bc45ca50b0c490b9c1f1e6f4">getRaw</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRKelvinatorAC.html#a4a32bbf1a7ee8a089ea1e4e7c750433b">setRaw</a>(<span class="keyword">const</span> uint8_t new_code[]);</div>
<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;  <span class="keyword">static</span> uint8_t <a class="code" href="classIRKelvinatorAC.html#a22f561397c526ed6cc3f69a5d527d8d6">calcBlockChecksum</a>(</div>
<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;      <span class="keyword">const</span> uint8_t* block, <span class="keyword">const</span> uint16_t length = <a class="code" href="IRremoteESP8266_8h.html#af68545e8c2fe9af3719fb74c5d21f0c9">kKelvinatorStateLength</a> / 2);</div>
<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;  <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code" href="classIRKelvinatorAC.html#aaa915fa5eb3f7e5c7a3dc143b6fda826">validChecksum</a>(<span class="keyword">const</span> uint8_t state[],</div>
<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;                            <span class="keyword">const</span> uint16_t length = <a class="code" href="IRremoteESP8266_8h.html#af68545e8c2fe9af3719fb74c5d21f0c9">kKelvinatorStateLength</a>);</div>
<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;  <span class="keyword">static</span> uint8_t <a class="code" href="classIRKelvinatorAC.html#acc9d70a94dd3813005ca0381b80a35e4">convertMode</a>(<span class="keyword">const</span> <a class="code" href="namespacestdAc.html#a99ad268c783486f9b3207cb78f48444f">stdAc::opmode_t</a> mode);</div>
<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;  <span class="keyword">static</span> <a class="code" href="namespacestdAc.html#a99ad268c783486f9b3207cb78f48444f">stdAc::opmode_t</a> <a class="code" href="classIRKelvinatorAC.html#ae2683d38ae72b99e6843e37d36f96db2">toCommonMode</a>(<span class="keyword">const</span> uint8_t mode);</div>
<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;  <span class="keyword">static</span> <a class="code" href="namespacestdAc.html#a8bb0dbf18fe69f639f4ac0b3ff133383">stdAc::fanspeed_t</a> <a class="code" href="classIRKelvinatorAC.html#a0ebd262c554c5c843bc3f710570e1401">toCommonFanSpeed</a>(<span class="keyword">const</span> uint8_t speed);</div>
<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;  <a class="code" href="structstdAc_1_1state__t.html">stdAc::state_t</a> <a class="code" href="classIRKelvinatorAC.html#a4f44754277101b80574ce66b02bdbe06">toCommon</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;  <a class="code" href="IRremoteESP8266_8h.html#afbeda3fd1bdc8c37d01bdf9f5c8274ff">String</a> <a class="code" href="classIRKelvinatorAC.html#a6635961df47a9847ace3185598750616">toString</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;<span class="preprocessor">#ifndef UNIT_TEST</span></div>
<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160; </div>
<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="classIRKelvinatorAC.html#ae3571bf6de20e47f81ad1da8f1d13118">  187</a></span>&#160;  <a class="code" href="classIRsend.html">IRsend</a> <a class="code" href="classIRKelvinatorAC.html#ae3571bf6de20e47f81ad1da8f1d13118">_irsend</a>;  </div>
<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;<span class="preprocessor">#else  // UNIT_TEST</span></div>
<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;  IRsendTest <a class="code" href="classIRKelvinatorAC.html#ae3571bf6de20e47f81ad1da8f1d13118">_irsend</a>;  </div>
<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;<span class="preprocessor">#endif  // UNIT_TEST</span></div>
<div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="classIRKelvinatorAC.html#ada1ada9d4441938af9f98e03b11f2b65">  193</a></span>&#160;  <a class="code" href="unionKelvinatorProtocol.html">KelvinatorProtocol</a> <a class="code" href="classIRKelvinatorAC.html#ada1ada9d4441938af9f98e03b11f2b65">_</a>;</div>
<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRKelvinatorAC.html#aad752fda68767a47d77ae4e1eeb550f7">checksum</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classIRKelvinatorAC.html#a389af589003c39794ae5d4bd572fa485">fixup</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;};</div>
<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160; </div>
<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;<span class="preprocessor">#endif  // IR_KELVINATOR_H_</span></div>
</div><!-- fragment --></div><!-- contents -->
<div class="ttc" id="air__Kelvinator_8h_html_ad80c71879304772caa433945cc2d1525"><div class="ttname"><a href="ir__Kelvinator_8h.html#ad80c71879304772caa433945cc2d1525">kKelvinatorSwingVAuto</a></div><div class="ttdeci">const uint8_t kKelvinatorSwingVAuto</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:107</div></div>
<div class="ttc" id="air__Kelvinator_8h_html_aa06bb62cd671c6e7784297dd0fafa98d"><div class="ttname"><a href="ir__Kelvinator_8h.html#aa06bb62cd671c6e7784297dd0fafa98d">kKelvinatorSwingVLowerMiddle</a></div><div class="ttdeci">const uint8_t kKelvinatorSwingVLowerMiddle</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:111</div></div>
<div class="ttc" id="air__Kelvinator_8h_html_ada6950a414392ccd4900a0841ef1ea7e"><div class="ttname"><a href="ir__Kelvinator_8h.html#ada6950a414392ccd4900a0841ef1ea7e">kKelvinatorSwingVUpperMiddle</a></div><div class="ttdeci">const uint8_t kKelvinatorSwingVUpperMiddle</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:109</div></div>
<div class="ttc" id="air__Kelvinator_8h_html_ad610b3c9f5fcc520903c766651845a60"><div class="ttname"><a href="ir__Kelvinator_8h.html#ad610b3c9f5fcc520903c766651845a60">kKelvinatorSwingVHighest</a></div><div class="ttdeci">const uint8_t kKelvinatorSwingVHighest</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:108</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_a2f1731f71bc74fb7ad6fec1210ecb1c7"><div class="ttname"><a href="classIRKelvinatorAC.html#a2f1731f71bc74fb7ad6fec1210ecb1c7">IRKelvinatorAC::setSwingHorizontal</a></div><div class="ttdeci">void setSwingHorizontal(const bool on)</div><div class="ttdoc">Control the current horizontal swing setting.</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:324</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_ad6fefe85023c3fc318b0e45924874f9f"><div class="ttname"><a href="classIRKelvinatorAC.html#ad6fefe85023c3fc318b0e45924874f9f">IRKelvinatorAC::stateReset</a></div><div class="ttdeci">void stateReset(void)</div><div class="ttdoc">Reset the internals of the object to a known good state.</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:115</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_a7d9c44970e85f23c83723f27e96260ee"><div class="ttname"><a href="classIRKelvinatorAC.html#a7d9c44970e85f23c83723f27e96260ee">IRKelvinatorAC::setTurbo</a></div><div class="ttdeci">void setTurbo(const bool on)</div><div class="ttdoc">Control the current Turbo setting.</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:390</div></div>
<div class="ttc" id="air__Kelvinator_8h_html_ac4994c36634ca0ad8791807c9a992976"><div class="ttname"><a href="ir__Kelvinator_8h.html#ac4994c36634ca0ad8791807c9a992976">kKelvinatorFanAuto</a></div><div class="ttdeci">const uint8_t kKelvinatorFanAuto</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:99</div></div>
<div class="ttc" id="anamespacestdAc_html_ac07f224c7bb47cac55dd01f24770ef43"><div class="ttname"><a href="namespacestdAc.html#ac07f224c7bb47cac55dd01f24770ef43">stdAc::swingv_t</a></div><div class="ttdeci">swingv_t</div><div class="ttdoc">Common A/C settings for Vertical Swing.</div><div class="ttdef"><b>Definition:</b> IRsend.h:74</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_a714d0e70f2996694e2c46afdd9996341"><div class="ttname"><a href="classIRKelvinatorAC.html#a714d0e70f2996694e2c46afdd9996341">IRKelvinatorAC::on</a></div><div class="ttdeci">void on(void)</div><div class="ttdoc">Set the internal state to have the power on.</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:197</div></div>
<div class="ttc" id="air__Kelvinator_8h_html_a889ce17d112d1a61420e1064d72c583a"><div class="ttname"><a href="ir__Kelvinator_8h.html#a889ce17d112d1a61420e1064d72c583a">kKelvinatorFanMax</a></div><div class="ttdeci">const uint8_t kKelvinatorFanMax</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:101</div></div>
<div class="ttc" id="air__Kelvinator_8h_html_ad49a2e457470d6e16d001cdae3215606"><div class="ttname"><a href="ir__Kelvinator_8h.html#ad49a2e457470d6e16d001cdae3215606">kKelvinatorCool</a></div><div class="ttdeci">const uint8_t kKelvinatorCool</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:94</div></div>
<div class="ttc" id="anamespacestdAc_html_a8bb0dbf18fe69f639f4ac0b3ff133383"><div class="ttname"><a href="namespacestdAc.html#a8bb0dbf18fe69f639f4ac0b3ff133383">stdAc::fanspeed_t</a></div><div class="ttdeci">fanspeed_t</div><div class="ttdoc">Common A/C settings for Fan Speeds.</div><div class="ttdef"><b>Definition:</b> IRsend.h:61</div></div>
<div class="ttc" id="air__Kelvinator_8h_html_ae6c7b4323c82b1b687fdc905d512f5eb"><div class="ttname"><a href="ir__Kelvinator_8h.html#ae6c7b4323c82b1b687fdc905d512f5eb">kKelvinatorSwingVHighAuto</a></div><div class="ttdeci">const uint8_t kKelvinatorSwingVHighAuto</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:115</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_a870890c2bc8510f8f7351ca21db8d855"><div class="ttname"><a href="classIRKelvinatorAC.html#a870890c2bc8510f8f7351ca21db8d855">IRKelvinatorAC::setLight</a></div><div class="ttdeci">void setLight(const bool on)</div><div class="ttdoc">Control the current Light setting. i.e. The LED display on the A/C unit that shows the basic settings...</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:362</div></div>
<div class="ttc" id="aunionKelvinatorProtocol_html_ad7c762e410c8cba234614563cdc9d384"><div class="ttname"><a href="unionKelvinatorProtocol.html#ad7c762e410c8cba234614563cdc9d384">KelvinatorProtocol::IonFilter</a></div><div class="ttdeci">uint8_t IonFilter</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:52</div></div>
<div class="ttc" id="air__Kelvinator_8h_html_ada8754b1c44e764630f1b6ba8f0e67f7"><div class="ttname"><a href="ir__Kelvinator_8h.html#ada8754b1c44e764630f1b6ba8f0e67f7">kKelvinatorSwingVLowAuto</a></div><div class="ttdeci">const uint8_t kKelvinatorSwingVLowAuto</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:113</div></div>
<div class="ttc" id="air__Kelvinator_8h_html_af4e3949fdd86145a19db5f1c8333ed41"><div class="ttname"><a href="ir__Kelvinator_8h.html#af4e3949fdd86145a19db5f1c8333ed41">kKelvinatorSwingVLowest</a></div><div class="ttdeci">const uint8_t kKelvinatorSwingVLowest</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:112</div></div>
<div class="ttc" id="aunionKelvinatorProtocol_html_abd01a8f9d88b44f59484955107d9b7bb"><div class="ttname"><a href="unionKelvinatorProtocol.html#abd01a8f9d88b44f59484955107d9b7bb">KelvinatorProtocol::SwingV</a></div><div class="ttdeci">uint8_t SwingV</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:60</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_a94374a68910d9d252543d2d65e991aa1"><div class="ttname"><a href="classIRKelvinatorAC.html#a94374a68910d9d252543d2d65e991aa1">IRKelvinatorAC::setSwingVertical</a></div><div class="ttdeci">void setSwingVertical(const bool automatic, const uint8_t position)</div><div class="ttdoc">Set the Vertical Swing mode of the A/C.</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:281</div></div>
<div class="ttc" id="aunionKelvinatorProtocol_html_aa67bf941395c4a614f8cc70ce29bffcf"><div class="ttname"><a href="unionKelvinatorProtocol.html#aa67bf941395c4a614f8cc70ce29bffcf">KelvinatorProtocol::pad0</a></div><div class="ttdeci">uint8_t pad0[2]</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:64</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_a0ebd262c554c5c843bc3f710570e1401"><div class="ttname"><a href="classIRKelvinatorAC.html#a0ebd262c554c5c843bc3f710570e1401">IRKelvinatorAC::toCommonFanSpeed</a></div><div class="ttdeci">static stdAc::fanspeed_t toCommonFanSpeed(const uint8_t speed)</div><div class="ttdoc">Convert a native fan speed to it's stdAc::fanspeed_t equivalent.</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:443</div></div>
<div class="ttc" id="air__Kelvinator_8h_html_afa9e7ea8c9fb86cb02358cc8221733b0"><div class="ttname"><a href="ir__Kelvinator_8h.html#afa9e7ea8c9fb86cb02358cc8221733b0">kKelvinatorAutoTemp</a></div><div class="ttdeci">const uint8_t kKelvinatorAutoTemp</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:104</div></div>
<div class="ttc" id="aunionKelvinatorProtocol_html_a95464e4fa3759ef5a8f88abce5617ebb"><div class="ttname"><a href="unionKelvinatorProtocol.html#a95464e4fa3759ef5a8f88abce5617ebb">KelvinatorProtocol::SwingAuto</a></div><div class="ttdeci">uint8_t SwingAuto</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:43</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_a5171c5678e6a2f71ce47420f0b38fff4"><div class="ttname"><a href="classIRKelvinatorAC.html#a5171c5678e6a2f71ce47420f0b38fff4">IRKelvinatorAC::toCommonSwingV</a></div><div class="ttdeci">static stdAc::swingv_t toCommonSwingV(const uint8_t pos)</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_a09149dd7bc45ca50b0c490b9c1f1e6f4"><div class="ttname"><a href="classIRKelvinatorAC.html#a09149dd7bc45ca50b0c490b9c1f1e6f4">IRKelvinatorAC::getRaw</a></div><div class="ttdeci">uint8_t * getRaw(void)</div><div class="ttdoc">Get the raw state of the object, suitable to be sent with the appropriate IRsend object method.</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:147</div></div>
<div class="ttc" id="aIRsend_8h_html"><div class="ttname"><a href="IRsend_8h.html">IRsend.h</a></div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_aafda5580f46145f2b1843d1d4b7dc055"><div class="ttname"><a href="classIRKelvinatorAC.html#aafda5580f46145f2b1843d1d4b7dc055">IRKelvinatorAC::getLight</a></div><div class="ttdeci">bool getLight(void) const</div><div class="ttdoc">Is the Light (Display) setting on?</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:368</div></div>
<div class="ttc" id="aunionKelvinatorProtocol_html_a44a0ba82ee5dc39f64215d26edb9636c"><div class="ttname"><a href="unionKelvinatorProtocol.html#a44a0ba82ee5dc39f64215d26edb9636c">KelvinatorProtocol::XFan</a></div><div class="ttdeci">uint8_t XFan</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:53</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_a6a219c481ddc21d93028f5c799c25883"><div class="ttname"><a href="classIRKelvinatorAC.html#a6a219c481ddc21d93028f5c799c25883">IRKelvinatorAC::setIonFilter</a></div><div class="ttdeci">void setIonFilter(const bool on)</div><div class="ttdoc">Control the current Ion Filter setting.</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:349</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_a6b7c66f0bc68f2d43fbbabce7933e0a5"><div class="ttname"><a href="classIRKelvinatorAC.html#a6b7c66f0bc68f2d43fbbabce7933e0a5">IRKelvinatorAC::getTemp</a></div><div class="ttdeci">uint8_t getTemp(void) const</div><div class="ttdoc">Get the current temperature setting.</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:224</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_af08e94be9699983c0087c9b059aad319"><div class="ttname"><a href="classIRKelvinatorAC.html#af08e94be9699983c0087c9b059aad319">IRKelvinatorAC::setFan</a></div><div class="ttdeci">void setFan(const uint8_t speed)</div><div class="ttdoc">Set the speed of the fan.</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:230</div></div>
<div class="ttc" id="aclassIRsend_html"><div class="ttname"><a href="classIRsend.html">IRsend</a></div><div class="ttdoc">Class for sending all basic IR protocols.</div><div class="ttdef"><b>Definition:</b> IRsend.h:237</div></div>
<div class="ttc" id="air__Kelvinator_8h_html_a98871ce825dbbe80d072f25253142879"><div class="ttname"><a href="ir__Kelvinator_8h.html#a98871ce825dbbe80d072f25253142879">kKelvinatorMinTemp</a></div><div class="ttdeci">const uint8_t kKelvinatorMinTemp</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:102</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_aee8863c1678b09432618bb4ca734db95"><div class="ttname"><a href="classIRKelvinatorAC.html#aee8863c1678b09432618bb4ca734db95">IRKelvinatorAC::calibrate</a></div><div class="ttdeci">int8_t calibrate(void)</div><div class="ttdoc">Run the calibration to calculate uSec timing offsets for this platform.</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:143</div></div>
<div class="ttc" id="aclassIRsend_html_ad1776aa6c699f9eeca1eef9bb4fe355b"><div class="ttname"><a href="classIRsend.html#ad1776aa6c699f9eeca1eef9bb4fe355b">IRsend::calibrate</a></div><div class="ttdeci">int8_t calibrate(uint16_t hz=38000U)</div><div class="ttdoc">Calculate &amp; set any offsets to account for execution times during sending.</div><div class="ttdef"><b>Definition:</b> IRsend.cpp:207</div></div>
<div class="ttc" id="aIRremoteESP8266_8h_html_afbeda3fd1bdc8c37d01bdf9f5c8274ff"><div class="ttname"><a href="IRremoteESP8266_8h.html#afbeda3fd1bdc8c37d01bdf9f5c8274ff">String</a></div><div class="ttdeci">std::string String</div><div class="ttdef"><b>Definition:</b> IRremoteESP8266.h:1521</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_ab24237062a73a8c236b6691a0277c1f3"><div class="ttname"><a href="classIRKelvinatorAC.html#ab24237062a73a8c236b6691a0277c1f3">IRKelvinatorAC::getSwingHorizontal</a></div><div class="ttdeci">bool getSwingHorizontal(void) const</div><div class="ttdoc">Is the horizontal swing setting on?</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:331</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_a517a0193a9236a28a20d1760d7401efd"><div class="ttname"><a href="classIRKelvinatorAC.html#a517a0193a9236a28a20d1760d7401efd">IRKelvinatorAC::setPower</a></div><div class="ttdeci">void setPower(const bool on)</div><div class="ttdoc">Set the internal state to have the desired power.</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:204</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_af55cc77892bc960587037c337b90d1bc"><div class="ttname"><a href="classIRKelvinatorAC.html#af55cc77892bc960587037c337b90d1bc">IRKelvinatorAC::setMode</a></div><div class="ttdeci">void setMode(const uint8_t mode)</div><div class="ttdoc">Set the desired operation mode.</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:258</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_aa55fbfefbaca1acf5bc9ba796bea8464"><div class="ttname"><a href="classIRKelvinatorAC.html#aa55fbfefbaca1acf5bc9ba796bea8464">IRKelvinatorAC::send</a></div><div class="ttdeci">void send(const uint16_t repeat=kKelvinatorDefaultRepeat)</div><div class="ttdoc">Send the current internal state as an IR message.</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:139</div></div>
<div class="ttc" id="air__Kelvinator_8h_html_a08c88d6a641b0f37b244b0fadd28a579"><div class="ttname"><a href="ir__Kelvinator_8h.html#a08c88d6a641b0f37b244b0fadd28a579">kKelvinatorSwingVMiddle</a></div><div class="ttdeci">const uint8_t kKelvinatorSwingVMiddle</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:110</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_a4a32bbf1a7ee8a089ea1e4e7c750433b"><div class="ttname"><a href="classIRKelvinatorAC.html#a4a32bbf1a7ee8a089ea1e4e7c750433b">IRKelvinatorAC::setRaw</a></div><div class="ttdeci">void setRaw(const uint8_t new_code[])</div><div class="ttdoc">Set the raw state of the object.</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:154</div></div>
<div class="ttc" id="air__Kelvinator_8h_html_a7a1f8481ce1a2d3606ae5f9dc98e9240"><div class="ttname"><a href="ir__Kelvinator_8h.html#a7a1f8481ce1a2d3606ae5f9dc98e9240">kKelvinatorSwingVMiddleAuto</a></div><div class="ttdeci">const uint8_t kKelvinatorSwingVMiddleAuto</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:114</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_a4591bf4e8131aa2a228cbc611156e7f4"><div class="ttname"><a href="classIRKelvinatorAC.html#a4591bf4e8131aa2a228cbc611156e7f4">IRKelvinatorAC::begin</a></div><div class="ttdeci">void begin(void)</div><div class="ttdoc">Set up hardware to be able to send a message.</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:122</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_a22f561397c526ed6cc3f69a5d527d8d6"><div class="ttname"><a href="classIRKelvinatorAC.html#a22f561397c526ed6cc3f69a5d527d8d6">IRKelvinatorAC::calcBlockChecksum</a></div><div class="ttdeci">static uint8_t calcBlockChecksum(const uint8_t *block, const uint16_t length=kKelvinatorStateLength/2)</div><div class="ttdoc">Calculate the checksum for a given block of state.</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:163</div></div>
<div class="ttc" id="aunionKelvinatorProtocol_html_a4bc98c7ae62273e8d8d60d71fdb44750"><div class="ttname"><a href="unionKelvinatorProtocol.html#a4bc98c7ae62273e8d8d60d71fdb44750">KelvinatorProtocol::Power</a></div><div class="ttdeci">uint8_t Power</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:41</div></div>
<div class="ttc" id="aIRremoteESP8266_8h_html"><div class="ttname"><a href="IRremoteESP8266_8h.html">IRremoteESP8266.h</a></div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_ae3571bf6de20e47f81ad1da8f1d13118"><div class="ttname"><a href="classIRKelvinatorAC.html#ae3571bf6de20e47f81ad1da8f1d13118">IRKelvinatorAC::_irsend</a></div><div class="ttdeci">IRsend _irsend</div><div class="ttdoc">Instance of the IR send class.</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:187</div></div>
<div class="ttc" id="air__Kelvinator_8h_html_a9d849a2e557b73a7d4fe6547e8af3b53"><div class="ttname"><a href="ir__Kelvinator_8h.html#a9d849a2e557b73a7d4fe6547e8af3b53">kKelvinatorSwingVOff</a></div><div class="ttdeci">const uint8_t kKelvinatorSwingVOff</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:106</div></div>
<div class="ttc" id="aunionKelvinatorProtocol_html_a38f5b978fd63fda659f0e0b5f682440e"><div class="ttname"><a href="unionKelvinatorProtocol.html#a38f5b978fd63fda659f0e0b5f682440e">KelvinatorProtocol::Light</a></div><div class="ttdeci">uint8_t Light</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:51</div></div>
<div class="ttc" id="aunionKelvinatorProtocol_html_a9d16ef4663c237f8217a081f71e96e44"><div class="ttname"><a href="unionKelvinatorProtocol.html#a9d16ef4663c237f8217a081f71e96e44">KelvinatorProtocol::raw</a></div><div class="ttdeci">uint8_t raw[kKelvinatorStateLength]</div><div class="ttdoc">The state in IR code form.</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:37</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_adfbe7efd74ec16f339c21983967920f9"><div class="ttname"><a href="classIRKelvinatorAC.html#adfbe7efd74ec16f339c21983967920f9">IRKelvinatorAC::getPower</a></div><div class="ttdeci">bool getPower(void) const</div><div class="ttdoc">Get the power setting from the internal state.</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:210</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_aaa915fa5eb3f7e5c7a3dc143b6fda826"><div class="ttname"><a href="classIRKelvinatorAC.html#aaa915fa5eb3f7e5c7a3dc143b6fda826">IRKelvinatorAC::validChecksum</a></div><div class="ttdeci">static bool validChecksum(const uint8_t state[], const uint16_t length=kKelvinatorStateLength)</div><div class="ttdoc">Verify the checksum is valid for a given state.</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:185</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html"><div class="ttname"><a href="classIRKelvinatorAC.html">IRKelvinatorAC</a></div><div class="ttdoc">Class for handling detailed Kelvinator A/C messages.</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:132</div></div>
<div class="ttc" id="air__Kelvinator_8h_html_a14933442e718db1a87bae5d076ad228d"><div class="ttname"><a href="ir__Kelvinator_8h.html#a14933442e718db1a87bae5d076ad228d">kKelvinatorMaxTemp</a></div><div class="ttdeci">const uint8_t kKelvinatorMaxTemp</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:103</div></div>
<div class="ttc" id="aunionKelvinatorProtocol_html_abd6a849c39d0e7e231a1cf42d32f52e7"><div class="ttname"><a href="unionKelvinatorProtocol.html#abd6a849c39d0e7e231a1cf42d32f52e7">KelvinatorProtocol::Mode</a></div><div class="ttdeci">uint8_t Mode</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:40</div></div>
<div class="ttc" id="aunionKelvinatorProtocol_html_a11960442c40eb23519d44c3daa354d4f"><div class="ttname"><a href="unionKelvinatorProtocol.html#a11960442c40eb23519d44c3daa354d4f">KelvinatorProtocol::Sum1</a></div><div class="ttdeci">uint8_t Sum1</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:67</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_aad752fda68767a47d77ae4e1eeb550f7"><div class="ttname"><a href="classIRKelvinatorAC.html#aad752fda68767a47d77ae4e1eeb550f7">IRKelvinatorAC::checksum</a></div><div class="ttdeci">void checksum(void)</div><div class="ttdoc">Calculate the checksum for the internal state.</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:176</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_a389af589003c39794ae5d4bd572fa485"><div class="ttname"><a href="classIRKelvinatorAC.html#a389af589003c39794ae5d4bd572fa485">IRKelvinatorAC::fixup</a></div><div class="ttdeci">void fixup(void)</div><div class="ttdoc">Fix up any odd conditions for the current state.</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:125</div></div>
<div class="ttc" id="aunionKelvinatorProtocol_html_a9feee780a54bfb86968f137080d3d68e"><div class="ttname"><a href="unionKelvinatorProtocol.html#a9feee780a54bfb86968f137080d3d68e">KelvinatorProtocol::pad1</a></div><div class="ttdeci">uint8_t pad1[3]</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:71</div></div>
<div class="ttc" id="aIRremoteESP8266_8h_html_af68545e8c2fe9af3719fb74c5d21f0c9"><div class="ttname"><a href="IRremoteESP8266_8h.html#af68545e8c2fe9af3719fb74c5d21f0c9">kKelvinatorStateLength</a></div><div class="ttdeci">const uint16_t kKelvinatorStateLength</div><div class="ttdef"><b>Definition:</b> IRremoteESP8266.h:1289</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_a4f44754277101b80574ce66b02bdbe06"><div class="ttname"><a href="classIRKelvinatorAC.html#a4f44754277101b80574ce66b02bdbe06">IRKelvinatorAC::toCommon</a></div><div class="ttdeci">stdAc::state_t toCommon(void) const</div><div class="ttdoc">Convert the internal A/C object state to it's stdAc::state_t equivalent.</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:449</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_a2a3ca238649c55cd4f6f92f48eddf9ac"><div class="ttname"><a href="classIRKelvinatorAC.html#a2a3ca238649c55cd4f6f92f48eddf9ac">IRKelvinatorAC::setQuiet</a></div><div class="ttdeci">void setQuiet(const bool on)</div><div class="ttdoc">Control the current Quiet setting.</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:337</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_af02da81109109cf1cb44057fd1a40164"><div class="ttname"><a href="classIRKelvinatorAC.html#af02da81109109cf1cb44057fd1a40164">IRKelvinatorAC::setXFan</a></div><div class="ttdeci">void setXFan(const bool on)</div><div class="ttdoc">Control the current XFan setting. This setting will cause the unit blow air after power off to dry ou...</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:377</div></div>
<div class="ttc" id="aunionKelvinatorProtocol_html_aa00bcaec92896c766d0c59edfd19fa0c"><div class="ttname"><a href="unionKelvinatorProtocol.html#aa00bcaec92896c766d0c59edfd19fa0c">KelvinatorProtocol::SwingH</a></div><div class="ttdeci">uint8_t SwingH</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:61</div></div>
<div class="ttc" id="air__Kelvinator_8h_html_a8d6d97be2fd8a5aefa1319d3f662a50c"><div class="ttname"><a href="ir__Kelvinator_8h.html#a8d6d97be2fd8a5aefa1319d3f662a50c">kKelvinatorFan</a></div><div class="ttdeci">const uint8_t kKelvinatorFan</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:96</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_a6635961df47a9847ace3185598750616"><div class="ttname"><a href="classIRKelvinatorAC.html#a6635961df47a9847ace3185598750616">IRKelvinatorAC::toString</a></div><div class="ttdeci">String toString(void) const</div><div class="ttdoc">Convert the internal settings into a human readable string.</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:475</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_ab098a376c7393d377abcc6c1f504d372"><div class="ttname"><a href="classIRKelvinatorAC.html#ab098a376c7393d377abcc6c1f504d372">IRKelvinatorAC::setTemp</a></div><div class="ttdeci">void setTemp(const uint8_t degrees)</div><div class="ttdoc">Set the temperature setting.</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:216</div></div>
<div class="ttc" id="aunionKelvinatorProtocol_html_aade6e576f735c6ef84c11062175f0013"><div class="ttname"><a href="unionKelvinatorProtocol.html#aade6e576f735c6ef84c11062175f0013">KelvinatorProtocol::Sum2</a></div><div class="ttdeci">uint8_t Sum2</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:88</div></div>
<div class="ttc" id="air__Kelvinator_8h_html_a10624389f033451cf9a6f4530c2dfb98"><div class="ttname"><a href="ir__Kelvinator_8h.html#a10624389f033451cf9a6f4530c2dfb98">kKelvinatorBasicFanMax</a></div><div class="ttdeci">const uint8_t kKelvinatorBasicFanMax</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:98</div></div>
<div class="ttc" id="air__Kelvinator_8h_html_a36a9422e2e6c6b7a87e8b2deffd1b189"><div class="ttname"><a href="ir__Kelvinator_8h.html#a36a9422e2e6c6b7a87e8b2deffd1b189">kKelvinatorFanMin</a></div><div class="ttdeci">const uint8_t kKelvinatorFanMin</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:100</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_aee37bb608940cb0214e1d0c0046c8eee"><div class="ttname"><a href="classIRKelvinatorAC.html#aee37bb608940cb0214e1d0c0046c8eee">IRKelvinatorAC::getTurbo</a></div><div class="ttdeci">bool getTurbo(void) const</div><div class="ttdoc">Is the Turbo setting on?</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:396</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_ada1ada9d4441938af9f98e03b11f2b65"><div class="ttname"><a href="classIRKelvinatorAC.html#ada1ada9d4441938af9f98e03b11f2b65">IRKelvinatorAC::_</a></div><div class="ttdeci">KelvinatorProtocol _</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:193</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_af878b8867a65e62e1208e8358cfffa7c"><div class="ttname"><a href="classIRKelvinatorAC.html#af878b8867a65e62e1208e8358cfffa7c">IRKelvinatorAC::getMode</a></div><div class="ttdeci">uint8_t getMode(void) const</div><div class="ttdoc">Get the current operation mode setting.</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:252</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_a5e3505b24cbd3d1d383c2b1bd8dd3226"><div class="ttname"><a href="classIRKelvinatorAC.html#a5e3505b24cbd3d1d383c2b1bd8dd3226">IRKelvinatorAC::getSwingVerticalAuto</a></div><div class="ttdeci">bool getSwingVerticalAuto(void) const</div><div class="ttdoc">Get the Vertical Swing Automatic mode setting of the A/C.</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:312</div></div>
<div class="ttc" id="aunionKelvinatorProtocol_html_a9237eb894fd7d6807169d18655bb3261"><div class="ttname"><a href="unionKelvinatorProtocol.html#a9237eb894fd7d6807169d18655bb3261">KelvinatorProtocol::BasicFan</a></div><div class="ttdeci">uint8_t BasicFan</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:42</div></div>
<div class="ttc" id="air__Kelvinator_8h_html_a080eade5648791e37c76af7a52e85731"><div class="ttname"><a href="ir__Kelvinator_8h.html#a080eade5648791e37c76af7a52e85731">kKelvinatorHeat</a></div><div class="ttdeci">const uint8_t kKelvinatorHeat</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:97</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_a3ecb10d41670852841c2543e6e97c781"><div class="ttname"><a href="classIRKelvinatorAC.html#a3ecb10d41670852841c2543e6e97c781">IRKelvinatorAC::getQuiet</a></div><div class="ttdeci">bool getQuiet(void) const</div><div class="ttdoc">Is the Quiet setting on?</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:343</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_a111dd384b1898a4fb880a19b6d1b1635"><div class="ttname"><a href="classIRKelvinatorAC.html#a111dd384b1898a4fb880a19b6d1b1635">IRKelvinatorAC::IRKelvinatorAC</a></div><div class="ttdeci">IRKelvinatorAC(const uint16_t pin, const bool inverted=false, const bool use_modulation=true)</div><div class="ttdoc">Class constructor.</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:110</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_a4a759df902d1465c9520da7c7c595abc"><div class="ttname"><a href="classIRKelvinatorAC.html#a4a759df902d1465c9520da7c7c595abc">IRKelvinatorAC::off</a></div><div class="ttdeci">void off(void)</div><div class="ttdoc">Set the internal state to have the power off.</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:200</div></div>
<div class="ttc" id="aIRremoteESP8266_8h_html_a94c968c5cc929f189b8e578d2f55b132"><div class="ttname"><a href="IRremoteESP8266_8h.html#a94c968c5cc929f189b8e578d2f55b132">kKelvinatorDefaultRepeat</a></div><div class="ttdeci">const uint16_t kKelvinatorDefaultRepeat</div><div class="ttdef"><b>Definition:</b> IRremoteESP8266.h:1291</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_ae96f43f14a7df9f23be734d1f9b09b37"><div class="ttname"><a href="classIRKelvinatorAC.html#ae96f43f14a7df9f23be734d1f9b09b37">IRKelvinatorAC::getFan</a></div><div class="ttdeci">uint8_t getFan(void) const</div><div class="ttdoc">Get the current fan speed setting.</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:246</div></div>
<div class="ttc" id="air__Kelvinator_8h_html_a181b3d10b522f9afb29706da42afea55"><div class="ttname"><a href="ir__Kelvinator_8h.html#a181b3d10b522f9afb29706da42afea55">kKelvinatorDry</a></div><div class="ttdeci">const uint8_t kKelvinatorDry</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:95</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_a40964ef9ac1319b5bb05cacdef014c8d"><div class="ttname"><a href="classIRKelvinatorAC.html#a40964ef9ac1319b5bb05cacdef014c8d">IRKelvinatorAC::convertSwingV</a></div><div class="ttdeci">static uint8_t convertSwingV(const stdAc::swingv_t swingv)</div><div class="ttdoc">Convert a stdAc::swingv_t enum into it's native setting.</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:416</div></div>
<div class="ttc" id="aunionKelvinatorProtocol_html_ac803fe14d6d21155418d2fe0543c9d9f"><div class="ttname"><a href="unionKelvinatorProtocol.html#ac803fe14d6d21155418d2fe0543c9d9f">KelvinatorProtocol::Quiet</a></div><div class="ttdeci">uint8_t Quiet</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:80</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_a3ba6705529806f3ca083dd45f4b28377"><div class="ttname"><a href="classIRKelvinatorAC.html#a3ba6705529806f3ca083dd45f4b28377">IRKelvinatorAC::getXFan</a></div><div class="ttdeci">bool getXFan(void) const</div><div class="ttdoc">Is the XFan setting on?</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:383</div></div>
<div class="ttc" id="aunionKelvinatorProtocol_html"><div class="ttname"><a href="unionKelvinatorProtocol.html">KelvinatorProtocol</a></div><div class="ttdoc">Native representation of a Kelvinator A/C message.</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:36</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_ae1cb7be762f306bd007976dc0feb788e"><div class="ttname"><a href="classIRKelvinatorAC.html#ae1cb7be762f306bd007976dc0feb788e">IRKelvinatorAC::getIonFilter</a></div><div class="ttdeci">bool getIonFilter(void) const</div><div class="ttdoc">Is the Ion Filter setting on?</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:355</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_ae2683d38ae72b99e6843e37d36f96db2"><div class="ttname"><a href="classIRKelvinatorAC.html#ae2683d38ae72b99e6843e37d36f96db2">IRKelvinatorAC::toCommonMode</a></div><div class="ttdeci">static stdAc::opmode_t toCommonMode(const uint8_t mode)</div><div class="ttdoc">Convert a native mode to it's stdAc::opmode_t equivalent.</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:430</div></div>
<div class="ttc" id="astructstdAc_1_1state__t_html"><div class="ttname"><a href="structstdAc_1_1state__t.html">stdAc::state_t</a></div><div class="ttdoc">Structure to hold a common A/C state.</div><div class="ttdef"><b>Definition:</b> IRsend.h:114</div></div>
<div class="ttc" id="aunionKelvinatorProtocol_html_a53c157f2b60f079f5ce77798084888a5"><div class="ttname"><a href="unionKelvinatorProtocol.html#a53c157f2b60f079f5ce77798084888a5">KelvinatorProtocol::Turbo</a></div><div class="ttdeci">uint8_t Turbo</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:50</div></div>
<div class="ttc" id="aunionKelvinatorProtocol_html_a2ad164ea50b7501e9b04352aa283ddce"><div class="ttname"><a href="unionKelvinatorProtocol.html#a2ad164ea50b7501e9b04352aa283ddce">KelvinatorProtocol::Temp</a></div><div class="ttdeci">uint8_t Temp</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:46</div></div>
<div class="ttc" id="aunionKelvinatorProtocol_html_a720843565363129441f5db98a166f439"><div class="ttname"><a href="unionKelvinatorProtocol.html#a720843565363129441f5db98a166f439">KelvinatorProtocol::Fan</a></div><div class="ttdeci">uint8_t Fan</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:85</div></div>
<div class="ttc" id="air__Kelvinator_8h_html_a879b005fc5493a693b05e3bb7cbc8fbf"><div class="ttname"><a href="ir__Kelvinator_8h.html#a879b005fc5493a693b05e3bb7cbc8fbf">kKelvinatorAuto</a></div><div class="ttdeci">const uint8_t kKelvinatorAuto</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.h:93</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_a14c497383d4025edbd82f6257357e469"><div class="ttname"><a href="classIRKelvinatorAC.html#a14c497383d4025edbd82f6257357e469">IRKelvinatorAC::getSwingVerticalPosition</a></div><div class="ttdeci">uint8_t getSwingVerticalPosition(void) const</div><div class="ttdoc">Get the Vertical Swing position setting of the A/C.</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:318</div></div>
<div class="ttc" id="aclassIRKelvinatorAC_html_acc9d70a94dd3813005ca0381b80a35e4"><div class="ttname"><a href="classIRKelvinatorAC.html#acc9d70a94dd3813005ca0381b80a35e4">IRKelvinatorAC::convertMode</a></div><div class="ttdeci">static uint8_t convertMode(const stdAc::opmode_t mode)</div><div class="ttdoc">Convert a standard A/C mode (stdAc::opmode_t) into it a native mode.</div><div class="ttdef"><b>Definition:</b> ir_Kelvinator.cpp:403</div></div>
<div class="ttc" id="anamespacestdAc_html_a99ad268c783486f9b3207cb78f48444f"><div class="ttname"><a href="namespacestdAc.html#a99ad268c783486f9b3207cb78f48444f">stdAc::opmode_t</a></div><div class="ttdeci">opmode_t</div><div class="ttdoc">Common A/C settings for A/C operating modes.</div><div class="ttdef"><b>Definition:</b> IRsend.h:49</div></div>
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>
